/* 
 * Shuriken is the legal property of its developers. Please refer to the
 * COPYRIGHT file distributed with this
 * source distribution.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

using System;
using System.Collections.Generic;
using System.Text;
using Shuriken.Core.Store;
using System.Windows.Forms; 

namespace Shuriken.Core.Store.Items
{
    ///// <summary>
    ///// Class representing this application and adds further actions
    ///// </summary>
    //public class ApplicationItem : Shell32FolderItem // StartMenuItem, IApplicant 
    //{
    //    public ApplicationItem()
    //    {
    //    }

    //    protected ApplicationItem(Shell32FolderItem fitem)
    //        : base(fitem)
    //    {
    //    }

    //    #region IApplicant Members

    //    /// <summary>
    //    /// Apply the changes on the application item in the start menu store or add
    //    /// </summary>
    //    /// <remarks>
    //    /// Adding extra actions for the application item. Extractions are: About, Settings and Exit 
    //    /// </remarks>
    //    public void Apply()
    //    {
    //        //string AppName = ApplicationEnvironment.ProductNameShort;
    //        //StartMenuStore StartMenu = StartMenuStore.GetInstance();

    //        //IStoreItem item = StartMenu[AppName];


    //        //if (item == null)
    //        //{
    //        //    // item not found, we need to create our own item here and add it to the start menu store               
    //        //    // System.Diagnostics.Trace.Assert(item != null, "Application item not found!");
    //        //}
    //        //else
    //        //{
    //        //    Shell32FolderItem StartMenuItem = (Shell32FolderItem)item;
    //        //    ApplicationItem appItem = new ApplicationItem(StartMenuItem);
    //        //    StartMenu[AppName] = appItem; 
    //        //}
    //    }

    //    #endregion

    //    /// <summary>
    //    /// Registering actions for this item
    //    /// </summary>
    //    public override void RegisterActions()
    //    {
    //        ApplicationItemAboutAction about = new ApplicationItemAboutAction();
    //        about.RegisterAction();

    //        ApplicationItemSettingsAction settings = new ApplicationItemSettingsAction();
    //        settings.RegisterAction();

    //        ApplicationItemExitAction exit = new ApplicationItemExitAction();
    //        exit.RegisterAction();
    //    }
    //}

    //[ActionName("About")]
    //[ActionSubjectType(typeof(ApplicationItem))]
    //public class ApplicationItemAboutAction : Shell32FolderItemBaseAction
    //{
    //    /// <summary>
    //    /// Executes this action 
    //    /// </summary>
    //    /// <param name="subject">subject to execute on</param>
    //    public override void Execute(Shell32FolderItem subject)
    //    {
    //        frmAbout about = new frmAbout();
    //        about.ShowDialog();
    //    }
    //}

    //[ActionName("Settings")]
    //[ActionSubjectType(typeof(ApplicationItem))]
    //public class ApplicationItemSettingsAction : Shell32FolderItemBaseAction
    //{
    //    /// <summary>
    //    /// Executes this action 
    //    /// </summary>
    //    /// <param name="subject">subject to execute on</param>
    //    public override void Execute(Shell32FolderItem subject)
    //    {
    //        // Settings invoked 
    //        frmSettings settings = new frmSettings();
    //        settings.ShowDialog();
    //    }
    //}

    //[ActionName("Exit")]
    //[ActionSubjectType(typeof(ApplicationItem))]
    //public class ApplicationItemExitAction : Shell32FolderItemBaseAction
    //{
    //    /// <summary>
    //    /// Executes this action 
    //    /// </summary>
    //    /// <param name="subject">subject to execute on</param>
    //    public override void Execute(Shell32FolderItem subject)
    //    {
    //        // Quit application
    //        Application.Exit();
    //    }
    //}
}
